/**
 * 设置一个最近最少使用的数据结构
 */

let LRUCache = function(capacity) {
     this.map = new Map(); // 存储kv对的容器
    this.capacity =capacity; // 设置最大的容量
}


// 获取值
LRUCache.prototype.get=function(key) {
    if(this.map.has(key)){
        // 获取到map中是否有对应key
        let value = this.map.get(key)
        this.map.delete(key)
        this.map.set(key,value)
        return value
    }
    return -1;
}


LRUCache.prototype.put = function(key,value){
    // 1. 如果没有值，直接放进去
    if(this.map.has(key)){
        this.map.delete(key)
    }
    // 2. 不管之前有没有，都要把他放进去
    this.map.set(key,value)

    // 3. 判断是否超过最大容量，如果是就删掉最老的一条，就是第一条
    if(this.map.size>this.capacity){
        // this.map.keys().next()是获取的第一条，然后拿到他的值，删除掉
        this.map.delete(this.map.keys().next().value)
    }
}


